package ufc.si.pet.beans;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import javax.servlet.http.HttpServletRequest;

import ufc.si.pet.dao.implementacoes.AtividadeJpaDAO;
import ufc.si.pet.dao.implementacoes.EncontroJpaDAO;
import ufc.si.pet.dao.interfaces.AtividadeDAO;
import ufc.si.pet.dao.interfaces.EncontroDAO;
import ufc.si.pet.entidades.Atividade;
import ufc.si.pet.entidades.Encontro;

@ManagedBean(name="encontroBean")
public class EncontroBean implements Serializable{
	
	private Atividade atividade;
	private Encontro encontro;
	
	public EncontroBean() {
		this.atividade = new Atividade();
		this.encontro = new Encontro();
	}
	
	public String encontros(){
		
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		int id = Integer.parseInt(request.getParameter("idAtividade"));
		AtividadeDAO dao = new AtividadeJpaDAO();
		this.atividade = dao.find(id);
		Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
		flash.put("atividadeFlash", this.atividade.getId());
		
		return "encontros";
		
	}
	
	public String addEncontro(){
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		int id = Integer.parseInt(request.getParameter("idAtividade"));
		AtividadeDAO daoAtividade = new AtividadeJpaDAO();
		this.atividade = daoAtividade.find(id);
		encontro.setAtividade(atividade);
		EncontroDAO dao = new EncontroJpaDAO();
		dao.beginTransaction();
		dao.salvar(encontro);
		dao.commit();
		dao.close();
		Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
		flash.put("atividadeFlash", this.atividade.getId());
		
		return "encontros";
	}
	
	public Atividade getAtividade() {
		return atividade;
	}

	public void setAtividade(Atividade atividade) {
		this.atividade = atividade;
	}

	public Encontro getEncontro() {
		return encontro;
	}

	public void setEncontro(Encontro encontro) {
		this.encontro = encontro;
	}
	
}
